This patch fixes Bugzilla #169. (It should fix #187 too -- Keir).
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 25 Aug 2005 16:21:19 +0000 (16:21 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 25 Aug 2005 16:21:19 +0000 (16:21 +0000)
commit0c01ed49354e4f00fc5cb9994800309b8b0ac99c
tree03e5958a53ff315cc63de0849e094a6010943737
parentd04c0fd02e0cc019b9de0aa9ecdc98b777e5168e
This patch fixes Bugzilla #169. (It should fix #187 too -- Keir).

The root cause of bug 169 is, machine_to_phys_mapping, starting from
0xffff800000000000, is mapped using 2M pages.  When the system has RAM
no more than 2G, only one 2M page is allocated and only one PDE entry is
created correspondingly, so calling mfn_to_pfn with mfn > 0x80000 will
overflow this 2M page and cause a unable handled kernel paging request.
The mfn > 0x80000 comes from PCI device I/O memory, here from AGP
display card when booting X server.  Jun suggested to use something like
get_user() when accessing machine_to_phys_mapping.

Signed-off-by: Xin Li <xin.b.li@intel.com>
linux-2.6-xen-sparse/include/asm-xen/asm-i386/page.h
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/page.h